package edu.nepu.flink.api.savepoint;

/**
 * @Date 2024/3/4 8:34
 * @Created by chenshuaijun
 */
public class SavepointOverview {

    public static void main(String[] args) {
        /**
         * 本类主要介绍savepoint
         *
         * 1、什么是savepoint
         *      savepoint顾名思义就是保存点的意思，他主要是通过我们手动的触发，来使flink程序保存当前的状态。
         * 2、savepoint的用途
         *    	版本管理和归档存储
         *    	更新Flink版本
         *    	更新应用程序
         *    	调整并行度
         *    	暂停应用程序
         * 3、savepoint和checkpoint的相同和区别
         *     （1）相同
         *          savepoint和checkpoint使用的是相同的算法，但是savepoint要比checkpoint多一些元数据信息
         *     (2) 区别
         *          checkpoint是由flink来触发管理和维护的，checkpoint主要是用于故障的恢复。
         *          savepoint是由程序员手动触发的，一般是用于代码的升级和版本的更替。
         *          使用savepoint恢复程序，我们可以调整程序的状态后端，但是使用checkpoint恢复程序不可以。
         * 4、使用savepoint的一些注意事项
         *      （1）我们不能更改程序的拓扑结构，不能随意更改有状态的算子，不能够更改状态的类型。
         *      （2）我们在程序开发的时候尽量为每个算子加上一个uid，这样有利于状态的恢复
         *
         */
    }
}
